【进阶绘图第13期】Matlab三维面积图

您所在的位置:网站首页 ppt 三维坐标图 【进阶绘图第13期】Matlab三维面积图

【进阶绘图第13期】Matlab三维面积图

2023-07-02 22:37| 来源: 网络整理| 查看: 265

三维折线面积图是将三维的折线图进行面积填充,主要用在突出不同参数条件下对于结果的影响,面积填充在一定程度上放大了不同的折线之间的差异,这类图主要用在工程力学以及机器学习和深度学习准确率的对比分析中,下面一起来实现吧!!!

成图效果展示

​🍏绘图三步走

配色

取色的方法在之前几期讲述过完整的取色方法,大家可以参考之前的代码,因此在配色和取色方法将不过多赘述,通过PPT取色与RGB值的读取都可以实现。

数据准备

三维折线面积图的数据主要来源于正弦函数,所有的数据均是随机产生,代码直接运行就可以,不需要额外的数据,大家在应用到自己的数据时只需要将Z矩阵换为自己的实验数据。

函数使用

认识函数:plot3是绘制三维折线图函数,fill3是对三维数据进行面积填充的函数,结合两个函数加hold on就可以实现啦。

🍈1. 数据准备

数据是来自南同学自己拟定的随机数据,主要是sin函数随机生成的一组函数值,数据读取代码如下:

clc; clear; % 首先说一下数据格式的组成 % X:数据X是自变量 就是你的时间序列的自变量时间 一个行向量 % Y: 数据Y也是一个自变量 有几个线就有几行,列向量是数据点个数 % 假如一根线 第一行全是1 两根线就是第一行全是1 第二行全是2 % 三行的话数据第三行就全是3, 这个例子是7根线 % Z: Z数据就是你的数据对应的值,行数也是线的数量。这个例子是7根线 num_line = 7; X = 0:0.01:pi; y = ones(1,size(X,2)); Y = []; for i = 1:num_line Y(i,:) = y.*i; end Z = []; for i = 1:num_line Z(i,:) = i.*sin(X); end % 随机设置颜色 colorall=rand(num_line,3);

​🍋2. 函数使用

函数的主要是plot3和fill3函数,函数的参数主要是X,Y,Z上述生成的三维数据,内部参数主要是调整透明度,绘图的完整代码如下所示:

for i=1:size(Z,1) plot3(X,Y(i,:),Z(i,:),'LineWidth',1,'Color',colorall(i,:)); hold on; fill3(X,Y(i,:),Z(i,:),colorall(i,:),'FaceAlpha',0.5,'EdgeColor',colorall(i,:)) end view(53,51); % 下面是修改图窗属性 set(gcf,'color','w'); set(gca,'Box','on'); set(gca,'Xgrid','on','Ygrid','on','Zgrid','on'); xlabel('弧度角-0-2pi','Fontname','微软雅黑'); ylabel('折线数量','Fontname','微软雅黑'); zlabel('值','Fontname','微软雅黑'); title('三维折线图','Fontname','微软雅黑'); % 这是修改Y轴的标签 每个线的名字 cell_str = {}; for j = 1:num_line cell_str{j} = ['line',num2str(j)]; end ​ set(gca,'Ylim',[0 num_line+1],'Ytick', [1:1:num_line], 'Yticklabel',cell_str); print(gcf,'图','-dpng','-r300');

代码最后主要是设置图窗参数进行优化设置,在最后自动保存为分辨率大小是300的高清图,后面的cell_str循环是生成Y轴标签的字符串,以上就是完整代码啦,这样就实现了整个图的绘制。目前有很多绘制三维填充图的版本,目前自己结合所学知识与市面上资料,简化了代码,绘图代码开源,完整代码可以直接运行,喜欢的小伙伴多多分享哟!

🍏往期回顾

完整代码资料获取方式如下:

完整源代码三维面积图资料

 



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3